	.file	"algorithm.c"
	.text
.globl binary_search
	.type	binary_search, @function
binary_search:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	subl	$52, %esp
	call	__i686.get_pc_thunk.bx
	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
	movl	12(%ebp), %eax
	movl	16(%ebp), %edx
	movl	20(%ebp), %ecx
	movb	%al, -24(%ebp)
	movb	%dl, -28(%ebp)
	movb	%cl, -32(%ebp)
	movb	$0, -5(%ebp)
	movzbl	-28(%ebp), %eax
	cmpb	-32(%ebp), %al
	jbe	.L2
	movl	$255, -36(%ebp)
	jmp	.L4
.L2:
	movzbl	-28(%ebp), %edx
	movzbl	-32(%ebp), %eax
	addl	%eax, %edx
	movl	%edx, %eax
	shrl	$31, %eax
	addl	%edx, %eax
	sarl	%eax
	movb	%al, -5(%ebp)
	movzbl	-5(%ebp), %eax
	addl	8(%ebp), %eax
	movzbl	(%eax), %eax
	cmpb	-24(%ebp), %al
	jne	.L5
	movzbl	-5(%ebp), %eax
	movl	%eax, -36(%ebp)
	jmp	.L4
.L5:
	movzbl	-5(%ebp), %eax
	addl	8(%ebp), %eax
	movzbl	(%eax), %eax
	cmpb	-24(%ebp), %al
	jbe	.L7
	movzbl	-5(%ebp), %eax
	subl	$1, %eax
	movzbl	%al, %eax
	movzbl	-28(%ebp), %edx
	movzbl	-24(%ebp), %ecx
	movl	%eax, 12(%esp)
	movl	%edx, 8(%esp)
	movl	%ecx, 4(%esp)
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	binary_search@PLT
	jmp	.L9
.L7:
	movzbl	-5(%ebp), %eax
	addl	8(%ebp), %eax
	movzbl	(%eax), %eax
	cmpb	-24(%ebp), %al
	jae	.L9
	movzbl	-32(%ebp), %ecx
	movzbl	-5(%ebp), %eax
	addl	$1, %eax
	movzbl	%al, %eax
	movzbl	-24(%ebp), %edx
	movl	%ecx, 12(%esp)
	movl	%eax, 8(%esp)
	movl	%edx, 4(%esp)
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	binary_search@PLT
.L9:
	jmp	.L1
.L4:
	movl	-36(%ebp), %eax
	movl	%eax, -40(%ebp)
.L1:
	movl	-40(%ebp), %eax
	addl	$52, %esp
	popl	%ebx
	popl	%ebp
	ret
	.size	binary_search, .-binary_search
	.section	.rodata
.LC0:
	.string	"rand:"
.LC1:
	.string	"%d "
	.text
.globl rand_test
	.type	rand_test, @function
rand_test:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$44, %esp
	call	__i686.get_pc_thunk.bx
	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
	movl	$0, -16(%ebp)
	movl	$0, (%esp)
	call	time@PLT
	movl	%eax, (%esp)
	call	srand@PLT
	leal	.LC0@GOTOFF(%ebx), %eax
	movl	%eax, (%esp)
	call	puts@PLT
	movl	$0, -16(%ebp)
	jmp	.L13
.L14:
	movl	-16(%ebp), %eax
	sall	$2, %eax
	movl	%eax, %esi
	addl	8(%ebp), %esi
	call	rand@PLT
	movl	%eax, %ecx
	movl	$1374389535, -36(%ebp)
	movl	-36(%ebp), %eax
	imull	%ecx
	sarl	$5, %edx
	movl	%ecx, %eax
	sarl	$31, %eax
	movl	%edx, %edi
	subl	%eax, %edi
	movl	%edi, -32(%ebp)
	imull	$100, -32(%ebp), %eax
	movl	%ecx, %edx
	subl	%eax, %edx
	movl	%edx, -32(%ebp)
	movl	-32(%ebp), %edi
	movl	%edi, (%esi)
	movl	-16(%ebp), %eax
	sall	$2, %eax
	addl	8(%ebp), %eax
	movl	(%eax), %eax
	movl	%eax, 4(%esp)
	leal	.LC1@GOTOFF(%ebx), %eax
	movl	%eax, (%esp)
	call	printf@PLT
	addl	$1, -16(%ebp)
.L13:
	movl	-16(%ebp), %eax
	cmpl	12(%ebp), %eax
	jb	.L14
	movl	$10, (%esp)
	call	putchar@PLT
	addl	$44, %esp
	popl	%ebx
	popl	%esi
	popl	%edi
	popl	%ebp
	ret
	.size	rand_test, .-rand_test
.globl swap
	.type	swap, @function
swap:
	pushl	%ebp
	movl	%esp, %ebp
	movl	8(%ebp), %eax
	movl	(%eax), %edx
	movl	12(%ebp), %eax
	movl	(%eax), %eax
	xorl	%eax, %edx
	movl	8(%ebp), %eax
	movl	%edx, (%eax)
	movl	12(%ebp), %eax
	movl	(%eax), %edx
	movl	8(%ebp), %eax
	movl	(%eax), %eax
	xorl	%eax, %edx
	movl	12(%ebp), %eax
	movl	%edx, (%eax)
	movl	8(%ebp), %eax
	movl	(%eax), %edx
	movl	12(%ebp), %eax
	movl	(%eax), %eax
	xorl	%eax, %edx
	movl	8(%ebp), %eax
	movl	%edx, (%eax)
	popl	%ebp
	ret
	.size	swap, .-swap
.globl block_max
	.type	block_max, @function
block_max:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$16, %esp
	movl	$0, -8(%ebp)
	movl	$0, -4(%ebp)
	movl	$1, -8(%ebp)
	jmp	.L20
.L21:
	movl	8(%ebp), %edx
	subl	$4, %edx
	movl	-8(%ebp), %eax
	sall	$2, %eax
	leal	(%edx,%eax), %eax
	movl	(%eax), %eax
	cmpl	-4(%ebp), %eax
	jle	.L22
	movl	8(%ebp), %edx
	subl	$4, %edx
	movl	-8(%ebp), %eax
	sall	$2, %eax
	leal	(%edx,%eax), %eax
	movl	(%eax), %eax
	movl	%eax, -4(%ebp)
	movl	16(%ebp), %eax
	imull	12(%ebp), %eax
	addl	-8(%ebp), %eax
	movl	%eax, %edx
	movl	20(%ebp), %eax
	movl	%edx, (%eax)
	movl	-4(%ebp), %edx
	movl	20(%ebp), %eax
	movl	%edx, 4(%eax)
.L22:
	addl	$1, -8(%ebp)
.L20:
	movl	-8(%ebp), %eax
	cmpl	12(%ebp), %eax
	jl	.L21
	movl	-4(%ebp), %eax
	leave
	ret
	.size	block_max, .-block_max
	.section	.rodata
.LC2:
	.string	"%d %d\n"
	.text
.globl block_search
	.type	block_search, @function
block_search:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%esi
	pushl	%ebx
	subl	$80, %esp
	call	__i686.get_pc_thunk.bx
	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
	movl	$0, -20(%ebp)
	movl	$0, -16(%ebp)
	movl	$0, -12(%ebp)
	movl	16(%ebp), %eax
	movl	%eax, -64(%ebp)
	movl	$1431655766, -68(%ebp)
	movl	-68(%ebp), %eax
	imull	-64(%ebp)
	movl	%edx, %ecx
	movl	-64(%ebp), %eax
	sarl	$31, %eax
	movl	%ecx, %edx
	subl	%eax, %edx
	movl	%edx, -60(%ebp)
	movl	-60(%ebp), %eax
	addl	%eax, %eax
	addl	-60(%ebp), %eax
	movl	-64(%ebp), %edx
	subl	%eax, %edx
	movl	%edx, -60(%ebp)
	cmpl	$0, -60(%ebp)
	jne	.L27
	movl	16(%ebp), %eax
	movl	%eax, -64(%ebp)
	movl	$1431655766, -68(%ebp)
	movl	-68(%ebp), %eax
	imull	-64(%ebp)
	movl	%edx, %ecx
	movl	-64(%ebp), %eax
	sarl	$31, %eax
	movl	%ecx, %edx
	subl	%eax, %edx
	movl	%edx, %eax
	movl	%eax, -12(%ebp)
	jmp	.L29
.L27:
	movl	16(%ebp), %eax
	movl	%eax, -64(%ebp)
	movl	$1431655766, -68(%ebp)
	movl	-68(%ebp), %eax
	imull	-64(%ebp)
	movl	%edx, %ecx
	movl	-64(%ebp), %eax
	sarl	$31, %eax
	movl	%ecx, %edx
	subl	%eax, %edx
	movl	%edx, %eax
	addl	$1, %eax
	movl	%eax, -12(%ebp)
.L29:
	movl	$0, -20(%ebp)
	jmp	.L30
.L31:
	movl	-20(%ebp), %eax
	sall	$3, %eax
	leal	-44(%ebp), %edx
	addl	%eax, %edx
	movl	-20(%ebp), %esi
	addl	$1, %esi
	movl	-16(%ebp), %eax
	sall	$2, %eax
	movl	%eax, %ecx
	addl	8(%ebp), %ecx
	movl	%edx, 12(%esp)
	movl	%esi, 8(%esp)
	movl	-12(%ebp), %eax
	movl	%eax, 4(%esp)
	movl	%ecx, (%esp)
	call	block_max@PLT
	movl	-20(%ebp), %eax
	movl	-40(%ebp,%eax,8), %edx
	movl	-20(%ebp), %eax
	movl	-44(%ebp,%eax,8), %eax
	movl	%edx, 8(%esp)
	movl	%eax, 4(%esp)
	leal	.LC2@GOTOFF(%ebx), %eax
	movl	%eax, (%esp)
	call	printf@PLT
	movl	-12(%ebp), %eax
	addl	%eax, -16(%ebp)
	addl	$1, -20(%ebp)
.L30:
	cmpl	$2, -20(%ebp)
	jle	.L31
	movl	$0, -20(%ebp)
	jmp	.L33
.L34:
	movl	12(%ebp), %eax
	movl	-20(%ebp), %edx
	movl	-40(%ebp,%edx,8), %edx
	cmpl	%edx, %eax
	jb	.L35
	addl	$1, -20(%ebp)
.L33:
	cmpl	$2, -20(%ebp)
	jle	.L34
.L35:
	jmp	.L35
	.size	block_search, .-block_search
.globl main
	.type	main, @function
main:
	leal	4(%esp), %ecx
	andl	$-16, %esp
	pushl	-4(%ecx)
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	pushl	%ecx
	subl	$64, %esp
	call	__i686.get_pc_thunk.bx
	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
	movl	$1, -56(%ebp)
	movl	$2, -52(%ebp)
	movl	$3, -48(%ebp)
	movl	$59, -44(%ebp)
	movl	$42, -40(%ebp)
	movl	$56, -36(%ebp)
	movl	$100, -32(%ebp)
	movl	$450, -28(%ebp)
	movl	$290, -24(%ebp)
	movl	$24, -20(%ebp)
	movl	$0, -16(%ebp)
	movl	$9, -12(%ebp)
	movl	-12(%ebp), %eax
	movl	%eax, 8(%esp)
	movl	-20(%ebp), %eax
	movl	%eax, 4(%esp)
	leal	-56(%ebp), %eax
	movl	%eax, (%esp)
	call	block_search@PLT
	movl	$0, %eax
	addl	$64, %esp
	popl	%ecx
	popl	%ebx
	popl	%ebp
	leal	-4(%ecx), %esp
	ret
	.size	main, .-main
	.ident	"GCC: (GNU) 4.1.2 20070925 (Red Hat 4.1.2-33)"
	.section	.text.__i686.get_pc_thunk.bx,"axG",@progbits,__i686.get_pc_thunk.bx,comdat
.globl __i686.get_pc_thunk.bx
	.hidden	__i686.get_pc_thunk.bx
	.type	__i686.get_pc_thunk.bx, @function
__i686.get_pc_thunk.bx:
	movl	(%esp), %ebx
	ret
	.section	.note.GNU-stack,"",@progbits
